﻿
'Namespace Instrumentacao

'    ''' <summary>
'    ''' Esta classe retorna um objeto do tipo Miron.Instrumentacao.ILogger que é o Logger responsável pela classe do tipo classType recebido como parâmetro no método GetLogger().
'    ''' </summary>
'    ''' <remarks></remarks>
'    Public Class LoggerFactory

'        Shared loggers As New Dictionary(Of String, ILogger)

'        ''' <summary>
'        ''' Este método retorna um ILogger, que é o logger responsável pelos logs da classe cujo tipo é classType recebido como parâmetro.
'        ''' Há um logger para cada classType.
'        ''' </summary>
'        ''' <param name="classType">é o Type da classe sendo logada, por exemplo MeuServico, ou MeuDao.</param>
'        ''' <returns>Miron.Instrumentacao.ILogger</returns>
'        ''' <remarks></remarks>
'        Public Shared Function GetLogger(ByVal classType As Type) As ILogger
'            If (Not log4net.LogManager.GetRepository().Configured) Then
'                log4net.Config.XmlConfigurator.Configure()
'                log4net.LogManager.GetRepository().Configured = True
'            End If

'            If (Not loggers.ContainsKey(classType.ToString)) Then
'                loggers.Add(classType.ToString, New Log4netLogger(classType))
'            End If
'            Return loggers.Item(classType.ToString)
'        End Function

'    End Class
'End Namespace
